#  变量的作用域


""""
函数里面的x y，和函数外面的 x y，是不同的变量，只是名字恰好相同

变量的作用域：
        一个变量名的有效范围是一定的，只在一个固定的区域内生效
        函数内部的变量名，只能在函数内部生效，出了函数，就无效了

函数内部和函数外部是可以使用同名的变量的，虽然变量名相同，但是是不同的变量

   在Python中，if else while for 这些关键字也会引入“代码块”，但是这些代码块不会对
变量的作用域产生影响，在上述语句代码块内部定义的变量，也可以在外面被访问

"""
# def getPoint():
#     x = 10
#     y = 20
#     return x, y
#
#
# x, y = getPoint()
# print(x, y)


# 函数内部和函数外部是可以使用同名的变量的，虽然变量名相同，但是是不同的变量

# x = 20   #  全局变量
#
#
# def getPrint():
#     x = 30  # 局部变量
#     print(f'打印函数内部，x = {x}')
#
# getPrint()
#
# print(f'打印函数外部， x = {x}')


# 函数里面也可以写全局变量的
"""
  在函数里面尝试读取全局变量，是可以
     当函数中尝试访问某个变量的时候，会先尝试在局部中查找，如果找到，
  就直接访问，如果没有找到，就会往上一级作用域，就是全局变量了
"""
# x = 10
# def text():
#     print(x)
#
# text()


# 使用这个函数，把全局变量x 给改成 20
"""
   没有global，此时就会把x=20,当作是在函数内部创建了一个局部变量x，
而实际上是要修改全局变量x,为了让函数里面知道x是个全局变量，就是用global关键字先声明一下


"""
x = 10


def text():
    global x
    x = 20


text()
# print(x)# 这里的x 还是 10 没有对全局变量进行改变
print(x)

